package pe.com.cotelasa.scp.dominio.service;

import java.util.Collection;
import java.util.Date;
import java.util.List;

import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.GuiaRemision;
import pe.com.cotelasa.scp.to.GuiaRemisionTO;

public interface IServicioGuiaRemision {

    public ResultadoServicio guardarGuiaRemision(GuiaRemision guiaRemision);

    public List<GuiaRemisionTO> obtenerGuiaRemisionBusqueda(
            GuiaRemision guiaRemision, Date fechaInicio, Date fechaFinal) throws ServiceException;

    public GuiaRemision conseguirGuiaDeRemisionPorId(Integer idGuiaRemision)
            throws ServiceException;

    public ResultadoServicio actualizarGuiaDeRemision(GuiaRemision guiaRemision)
            throws ServiceException;

    public List<GuiaRemision> obtenerGuiaRemisionPorOrdenCS(GuiaRemision guia) throws ServiceException;

    public GuiaRemision obtenerGuiaRemisionPorProveedor(String numGuia, GuiaRemision guia) throws ServiceException;

    public List<GuiaRemision> listarGuiaRemisionPorFiltro(GuiaRemision guia) throws ServiceException;

    public boolean esNumeroGuiaCorrecta(GuiaRemision guia) throws ServiceException;

    public List<GuiaRemision> obtenerGuiaExportacionPorOP(GuiaRemision guia) throws ServiceException;

    public Collection<GuiaRemision> obtenerGuiasPorSerie(GuiaRemision guia, Date fechaInicio, Date fechaFinal) throws ServiceException;
}